/*
 * @Author: guanyaoming guanyaoming@linklogis.com
 * @Date: 2023-06-19 15:07:15
 * @LastEditors: guanyaoming guanyaoming@linklogis.com
 * @LastEditTime: 2023-06-26 18:29:55
 * @FilePath: /icf-agw-front/script/initPageContainer.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// 通过命令创建新路由、模块文件夹

const sh = require("shelljs");

// 设置 shelljs 属性
sh.set({
    errexit: true, // 如果命令执行失败，则立即退出脚本
    fatal: true, // 如果发生任何错误，则立即退出脚本
});

/**
 * folder views 文件下的文件夹名称，同时也作为路由 path 的值
 * menuName 页面顶部的标题名称，同时也是路由文件 name 的值
 */
const [, , folder, menuName] = process.argv;
sh.cd("src/views");
sh.mkdir(folder);

// 获取当前项目的根目录
const projectRoot = sh
    .exec("git rev-parse --show-toplevel", { silent: true })
    .stdout.trim();
sh.cd(projectRoot);

// 把 UI 模板复制到目标路径的文件下
const fileContent = sh
    .cat("src/views/UIDemo/UIDemoTableList2/index.vue")
    .to(`src/views/${folder}/index.vue`);
const configContent = sh
    .cat("src/views/UIDemo/UIDemoTableList2/columnConfig.js")
    .to(`src/views/${folder}/columnConfig.js`);
if (fileContent.code !== 0 || configContent.code !== 0) {
    console.log(fileContent, configContent);
}
// 替换目标路径的文件下关键字
sh.sed("-i", /模板标题/g, menuName, `src/views/${folder}/index.vue`);

// 获取路由文件并新增路由信息
const newRouter = `{
                path: "/${folder}",
                component: () =>
                    import(/* webpackChunkName: "${folder}" */ "@/views/${folder}/index"),
                name: "${menuName}",
            },
            // UI 规范模板`;
const routerContent = sh.sed(
    "-i",
    "// UI 规范模板",
    newRouter,
    `src/router/index.js`
);
if (routerContent.code !== 0) {
    console.log(routerContent);
}
